﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Specialized;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using System.Web.DynamicData;
using System.Data.Linq;
using System.Collections.Generic;

namespace AmazonDataAdmin
{
    public partial class FilterUserControl : System.Web.DynamicData.FilterUserControlBase
    {
        public event EventHandler SelectedIndexChanged
        {
            add
            {
                DropDownList1.SelectedIndexChanged += value;
            }
            remove
            {
                DropDownList1.SelectedIndexChanged -= value;
            }
        }

        public override string SelectedValue
        {
            get
            {
                return DropDownList1.SelectedValue;
            }
        }

        protected void Page_Init(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                PopulateListControl(DropDownList1);
                //sorting DropDown by Text 
                SortDropDownList(DropDownList1);

                // Set the initial value if there is one
                if (!String.IsNullOrEmpty(InitialValue))
                    DropDownList1.SelectedValue = InitialValue;
            }
        }


        #region SortDropDownList
        /// <summary>
        /// method to sort a DropDownList
        /// </summary>
        /// <param name="ddl">DropDownList to sort</param>
        public void SortDropDownList(DropDownList ddl)
        {
            //create a ListItem array the size of the items
            //in your DropDownList
            List<ListItem> sorted = new List<ListItem>();
            foreach (ListItem item in ddl.Items)
            {
                sorted.Add(item);
            }
            sorted = sorted.OrderBy(a => a.Text).ToList();

            //remove all items from the DropDownList
            ddl.Items.Clear();
            //add the sorted items to the DropDownList
            ddl.Items.AddRange(sorted.ToArray());
        }
        #endregion
    }
}
